Esse
artigo padroniza a definição de objetos Oracle na
KM&M Engenharia de Sistemas. O objetivo é facilitar a programação e
manutenção dos sistemas existentes.
Segue
abaixo os padrões que foram adotados para a nomenclatura da DDL e PL/SQL do Oracle pela KM&M.
1. Toda tabela deve ter um alias
de no máximo 5 caracteres.
2. Chave Primária: pkc_alias
3. Check Constraint:
cc_alias_indice
4. Foreign Key:
fkc_alias(origem)_alias(destino)[_indice]
5. Unique: ukc_alias_indice
6. Trigger: tr_alias_*string*_indice
*String*
Posição 1 ? B (Before) ou A (After)
Posição 2[,3,4] ? I(Insert)
e/ou U(Update) e/ou D(Delete)
Última Posição ? R(each rows) ou S(Statement)
Exemplo : trigger de before para insert, update ou delete para cada linha
de uma tabela com alias igual a "cc" ficaria
"tr_cc_biudr_00".
Quando se tratar de uma trigger
para controle de tabela mutante o índice permanecerá o mesmo, para as triggers envolvidas.
7. Nomenclatura de
procedimentos, funções e packages.
procedures - PRC_
Functions -
FNC_
packages - PKG_
Procedures e functions
públicas ou privadas dos packages seguem a mesma
nomenclatura.
8. Índices: idx_alias_indice
9. Sequences: sqe_[_nome_campo]
O nome do campo deve ser incluído quando se tem mais
que um campo na tabela que utiliza seqüência automática.
10. Estruturas de Dados (vetores,
registros e cursores):
PL/SQL
Record: trg_
PL/SQL
Cursor: cur_
Colletion Types (PL/SQL Table): tc_
Objects
Type: to_
11. Variáveis:
Procedures/Functions
(Internas): v_
Variáveis de packages
(Públicas): vp_
Variáveis de packages (Private): vr_
12. Parâmetros de functions e procedures: p_
Exemplo:
fnc_teste(p_teste_numerico number) as
begin
....
end;
13. Views: v$
14. Views Materializadas: mv$
15. Object Views: ov$
16. Grupos de renovação: grp*tipo do grupo*_*schema*_*atributo*_*indice*
Sendo que:
*tipo do grupo* deve ser "M" para grupos
mestres ou "R" para grupos remotos
*schema* deve ser o nome do schema onde encontra-se a view materializada
*atributo* deve "RO" para somente leitura (read-only) ou "RW" para leitura e gravacao (read-write)
*indice* deve ser uma sequencia numerica iniciada em
"00" e incrementada de um em um.
Exemplos:
grpm_kss_ro_00 indica o grupo mestre do schema kss sendo somente para
leitura.